package com.cdtye.itps.cms.dao.line.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;
import com.cdtye.itps.cms.dao.enums.DelFlagEnum;
import com.cdtye.itps.cms.dao.enums.ElectrificationEnum;
import com.cdtye.itps.cms.dao.enums.SingleDoubleLineEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

@ApiModel("段辖线路")
@TableName("JC_SECLINE")
public class JcSecline {
    @ApiModelProperty("段辖线路ID")
    @TableId(
            value = "SECLINE_ID",
            type = IdType.ASSIGN_UUID
    )
    private String seclineId;
    @ApiModelProperty("资产所属单位")
    private String assetDept;
    @ApiModelProperty("起始公里标")
    private Double beginRoad;
    @ApiModelProperty("终点")
    private String endAddress;
    @ApiModelProperty("截止公里标")
    private Double endRoad;
    @ApiModelProperty("线路ID")
    private String lineId;
    @ApiModelProperty("线路等级  字典100033")
    private String lineLevel;
    @ApiModelProperty("备注信息")
    private String memo;
    @ApiModelProperty("电化开通时间")
    @DateTimeFormat(
            pattern = "yyyy-MM-dd HH:mm:ss"
    )
    @JSONField(
            format = "yyyy-MM-dd HH:mm:ss"
    )
    private Date openDate;
    @ApiModelProperty("运营里程")
    private Double operateKilomeaters;
    @ApiModelProperty("段辖线路名称")
    private String seclineName;
    @ApiModelProperty("段辖线路编号")
    private String seclineNo;
    @ApiModelProperty("段辖线路类别    GX :干线  ZX:之线    QX :曲线")
    private String seclineType;
    @ApiModelProperty("速度等级 字典100030  ")
    private String speedLevel;
    @ApiModelProperty("起点")
    private String startAddress;
    @ApiModelProperty("供电方式 字典100032")
    private String supplyWay;
    @ApiModelProperty("悬挂类型  字典100031  ")
    private String suspensionType;
    private Double orderNum;
    @ApiModelProperty("供电处综合系统线路ID")
    private String gdxtLineId;
    @ApiModelProperty("数据来源")
    private String source;
    @ApiModelProperty("线路类型 GT PT")
    private String railType;
    @ApiModelProperty("换算条公里")
    private String convertLineKms;
    @ApiModelProperty("创建时间")
    @TableField(
            value = "CREATE_DATETIME",
            fill = FieldFill.INSERT
    )
    private Date createDatetime;
    @ApiModelProperty("更新时间")
    @TableField(
            value = "UPDATE_DATETIME",
            fill = FieldFill.INSERT_UPDATE
    )
    private Date updateDatetime;
    @ApiModelProperty("创建人")
    @TableField(
            value = "CREATE_BY",
            fill = FieldFill.INSERT
    )
    private String createBy;
    @ApiModelProperty("更新人")
    @TableField(
            value = "UPDATE_BY",
            fill = FieldFill.INSERT_UPDATE
    )
    private String updateBy;
    @ApiModelProperty("删除标志，Y=是，N=否")
    @TableField(
            value = "DEL_FLAG",
            fill = FieldFill.INSERT
    )
    private String delFlag;
    @ApiModelProperty("电气化")
    private ElectrificationEnum electrification;
    @ApiModelProperty("单双线")
    private SingleDoubleLineEnum singleDoubleLine;

    public JcSecline() {
    }

    public String getSeclineId() {
        return this.seclineId;
    }

    public String getAssetDept() {
        return this.assetDept;
    }

    public Double getBeginRoad() {
        return this.beginRoad;
    }

    public String getEndAddress() {
        return this.endAddress;
    }

    public Double getEndRoad() {
        return this.endRoad;
    }

    public String getLineId() {
        return this.lineId;
    }

    public String getLineLevel() {
        return this.lineLevel;
    }

    public String getMemo() {
        return this.memo;
    }

    public Date getOpenDate() {
        return this.openDate;
    }

    public Double getOperateKilomeaters() {
        return this.operateKilomeaters;
    }

    public String getSeclineName() {
        return this.seclineName;
    }

    public String getSeclineNo() {
        return this.seclineNo;
    }

    public String getSeclineType() {
        return this.seclineType;
    }

    public String getSpeedLevel() {
        return this.speedLevel;
    }

    public String getStartAddress() {
        return this.startAddress;
    }

    public String getSupplyWay() {
        return this.supplyWay;
    }

    public String getSuspensionType() {
        return this.suspensionType;
    }

    public Double getOrderNum() {
        return this.orderNum;
    }

    public String getGdxtLineId() {
        return this.gdxtLineId;
    }

    public String getSource() {
        return this.source;
    }

    public String getRailType() {
        return this.railType;
    }

    public String getConvertLineKms() {
        return this.convertLineKms;
    }

    public Date getCreateDatetime() {
        return this.createDatetime;
    }

    public Date getUpdateDatetime() {
        return this.updateDatetime;
    }

    public String getCreateBy() {
        return this.createBy;
    }

    public String getUpdateBy() {
        return this.updateBy;
    }

    public String getDelFlag() {
        return this.delFlag;
    }

    public ElectrificationEnum getElectrification() {
        return this.electrification;
    }

    public SingleDoubleLineEnum getSingleDoubleLine() {
        return this.singleDoubleLine;
    }

    public JcSecline setSeclineId(String seclineId) {
        this.seclineId = seclineId;
        return this;
    }

    public JcSecline setAssetDept(String assetDept) {
        this.assetDept = assetDept;
        return this;
    }

    public JcSecline setBeginRoad(Double beginRoad) {
        this.beginRoad = beginRoad;
        return this;
    }

    public JcSecline setEndAddress(String endAddress) {
        this.endAddress = endAddress;
        return this;
    }

    public JcSecline setEndRoad(Double endRoad) {
        this.endRoad = endRoad;
        return this;
    }

    public JcSecline setLineId(String lineId) {
        this.lineId = lineId;
        return this;
    }

    public JcSecline setLineLevel(String lineLevel) {
        this.lineLevel = lineLevel;
        return this;
    }

    public JcSecline setMemo(String memo) {
        this.memo = memo;
        return this;
    }

    public JcSecline setOpenDate(Date openDate) {
        this.openDate = openDate;
        return this;
    }

    public JcSecline setOperateKilomeaters(Double operateKilomeaters) {
        this.operateKilomeaters = operateKilomeaters;
        return this;
    }

    public JcSecline setSeclineName(String seclineName) {
        this.seclineName = seclineName;
        return this;
    }

    public JcSecline setSeclineNo(String seclineNo) {
        this.seclineNo = seclineNo;
        return this;
    }

    public JcSecline setSeclineType(String seclineType) {
        this.seclineType = seclineType;
        return this;
    }

    public JcSecline setSpeedLevel(String speedLevel) {
        this.speedLevel = speedLevel;
        return this;
    }

    public JcSecline setStartAddress(String startAddress) {
        this.startAddress = startAddress;
        return this;
    }

    public JcSecline setSupplyWay(String supplyWay) {
        this.supplyWay = supplyWay;
        return this;
    }

    public JcSecline setSuspensionType(String suspensionType) {
        this.suspensionType = suspensionType;
        return this;
    }

    public JcSecline setOrderNum(Double orderNum) {
        this.orderNum = orderNum;
        return this;
    }

    public JcSecline setGdxtLineId(String gdxtLineId) {
        this.gdxtLineId = gdxtLineId;
        return this;
    }

    public JcSecline setSource(String source) {
        this.source = source;
        return this;
    }

    public JcSecline setRailType(String railType) {
        this.railType = railType;
        return this;
    }

    public JcSecline setConvertLineKms(String convertLineKms) {
        this.convertLineKms = convertLineKms;
        return this;
    }

    public JcSecline setCreateDatetime(Date createDatetime) {
        this.createDatetime = createDatetime;
        return this;
    }

    public JcSecline setUpdateDatetime(Date updateDatetime) {
        this.updateDatetime = updateDatetime;
        return this;
    }

    public JcSecline setCreateBy(String createBy) {
        this.createBy = createBy;
        return this;
    }

    public JcSecline setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
        return this;
    }

    public JcSecline setDelFlag(String delFlag) {
        this.delFlag = delFlag;
        return this;
    }

    public JcSecline setElectrification(ElectrificationEnum electrification) {
        this.electrification = electrification;
        return this;
    }

    public JcSecline setSingleDoubleLine(SingleDoubleLineEnum singleDoubleLine) {
        this.singleDoubleLine = singleDoubleLine;
        return this;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof JcSecline)) {
            return false;
        } else {
            JcSecline other = (JcSecline)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label359: {
                    Object this$seclineId = this.getSeclineId();
                    Object other$seclineId = other.getSeclineId();
                    if (this$seclineId == null) {
                        if (other$seclineId == null) {
                            break label359;
                        }
                    } else if (this$seclineId.equals(other$seclineId)) {
                        break label359;
                    }

                    return false;
                }

                Object this$assetDept = this.getAssetDept();
                Object other$assetDept = other.getAssetDept();
                if (this$assetDept == null) {
                    if (other$assetDept != null) {
                        return false;
                    }
                } else if (!this$assetDept.equals(other$assetDept)) {
                    return false;
                }

                label345: {
                    Object this$beginRoad = this.getBeginRoad();
                    Object other$beginRoad = other.getBeginRoad();
                    if (this$beginRoad == null) {
                        if (other$beginRoad == null) {
                            break label345;
                        }
                    } else if (this$beginRoad.equals(other$beginRoad)) {
                        break label345;
                    }

                    return false;
                }

                Object this$endAddress = this.getEndAddress();
                Object other$endAddress = other.getEndAddress();
                if (this$endAddress == null) {
                    if (other$endAddress != null) {
                        return false;
                    }
                } else if (!this$endAddress.equals(other$endAddress)) {
                    return false;
                }

                label331: {
                    Object this$endRoad = this.getEndRoad();
                    Object other$endRoad = other.getEndRoad();
                    if (this$endRoad == null) {
                        if (other$endRoad == null) {
                            break label331;
                        }
                    } else if (this$endRoad.equals(other$endRoad)) {
                        break label331;
                    }

                    return false;
                }

                Object this$lineId = this.getLineId();
                Object other$lineId = other.getLineId();
                if (this$lineId == null) {
                    if (other$lineId != null) {
                        return false;
                    }
                } else if (!this$lineId.equals(other$lineId)) {
                    return false;
                }

                label317: {
                    Object this$lineLevel = this.getLineLevel();
                    Object other$lineLevel = other.getLineLevel();
                    if (this$lineLevel == null) {
                        if (other$lineLevel == null) {
                            break label317;
                        }
                    } else if (this$lineLevel.equals(other$lineLevel)) {
                        break label317;
                    }

                    return false;
                }

                label310: {
                    Object this$memo = this.getMemo();
                    Object other$memo = other.getMemo();
                    if (this$memo == null) {
                        if (other$memo == null) {
                            break label310;
                        }
                    } else if (this$memo.equals(other$memo)) {
                        break label310;
                    }

                    return false;
                }

                Object this$openDate = this.getOpenDate();
                Object other$openDate = other.getOpenDate();
                if (this$openDate == null) {
                    if (other$openDate != null) {
                        return false;
                    }
                } else if (!this$openDate.equals(other$openDate)) {
                    return false;
                }

                label296: {
                    Object this$operateKilomeaters = this.getOperateKilomeaters();
                    Object other$operateKilomeaters = other.getOperateKilomeaters();
                    if (this$operateKilomeaters == null) {
                        if (other$operateKilomeaters == null) {
                            break label296;
                        }
                    } else if (this$operateKilomeaters.equals(other$operateKilomeaters)) {
                        break label296;
                    }

                    return false;
                }

                label289: {
                    Object this$seclineName = this.getSeclineName();
                    Object other$seclineName = other.getSeclineName();
                    if (this$seclineName == null) {
                        if (other$seclineName == null) {
                            break label289;
                        }
                    } else if (this$seclineName.equals(other$seclineName)) {
                        break label289;
                    }

                    return false;
                }

                Object this$seclineNo = this.getSeclineNo();
                Object other$seclineNo = other.getSeclineNo();
                if (this$seclineNo == null) {
                    if (other$seclineNo != null) {
                        return false;
                    }
                } else if (!this$seclineNo.equals(other$seclineNo)) {
                    return false;
                }

                Object this$seclineType = this.getSeclineType();
                Object other$seclineType = other.getSeclineType();
                if (this$seclineType == null) {
                    if (other$seclineType != null) {
                        return false;
                    }
                } else if (!this$seclineType.equals(other$seclineType)) {
                    return false;
                }

                label268: {
                    Object this$speedLevel = this.getSpeedLevel();
                    Object other$speedLevel = other.getSpeedLevel();
                    if (this$speedLevel == null) {
                        if (other$speedLevel == null) {
                            break label268;
                        }
                    } else if (this$speedLevel.equals(other$speedLevel)) {
                        break label268;
                    }

                    return false;
                }

                Object this$startAddress = this.getStartAddress();
                Object other$startAddress = other.getStartAddress();
                if (this$startAddress == null) {
                    if (other$startAddress != null) {
                        return false;
                    }
                } else if (!this$startAddress.equals(other$startAddress)) {
                    return false;
                }

                Object this$supplyWay = this.getSupplyWay();
                Object other$supplyWay = other.getSupplyWay();
                if (this$supplyWay == null) {
                    if (other$supplyWay != null) {
                        return false;
                    }
                } else if (!this$supplyWay.equals(other$supplyWay)) {
                    return false;
                }

                label247: {
                    Object this$suspensionType = this.getSuspensionType();
                    Object other$suspensionType = other.getSuspensionType();
                    if (this$suspensionType == null) {
                        if (other$suspensionType == null) {
                            break label247;
                        }
                    } else if (this$suspensionType.equals(other$suspensionType)) {
                        break label247;
                    }

                    return false;
                }

                Object this$orderNum = this.getOrderNum();
                Object other$orderNum = other.getOrderNum();
                if (this$orderNum == null) {
                    if (other$orderNum != null) {
                        return false;
                    }
                } else if (!this$orderNum.equals(other$orderNum)) {
                    return false;
                }

                label233: {
                    Object this$gdxtLineId = this.getGdxtLineId();
                    Object other$gdxtLineId = other.getGdxtLineId();
                    if (this$gdxtLineId == null) {
                        if (other$gdxtLineId == null) {
                            break label233;
                        }
                    } else if (this$gdxtLineId.equals(other$gdxtLineId)) {
                        break label233;
                    }

                    return false;
                }

                Object this$source = this.getSource();
                Object other$source = other.getSource();
                if (this$source == null) {
                    if (other$source != null) {
                        return false;
                    }
                } else if (!this$source.equals(other$source)) {
                    return false;
                }

                label219: {
                    Object this$railType = this.getRailType();
                    Object other$railType = other.getRailType();
                    if (this$railType == null) {
                        if (other$railType == null) {
                            break label219;
                        }
                    } else if (this$railType.equals(other$railType)) {
                        break label219;
                    }

                    return false;
                }

                Object this$convertLineKms = this.getConvertLineKms();
                Object other$convertLineKms = other.getConvertLineKms();
                if (this$convertLineKms == null) {
                    if (other$convertLineKms != null) {
                        return false;
                    }
                } else if (!this$convertLineKms.equals(other$convertLineKms)) {
                    return false;
                }

                label205: {
                    Object this$createDatetime = this.getCreateDatetime();
                    Object other$createDatetime = other.getCreateDatetime();
                    if (this$createDatetime == null) {
                        if (other$createDatetime == null) {
                            break label205;
                        }
                    } else if (this$createDatetime.equals(other$createDatetime)) {
                        break label205;
                    }

                    return false;
                }

                label198: {
                    Object this$updateDatetime = this.getUpdateDatetime();
                    Object other$updateDatetime = other.getUpdateDatetime();
                    if (this$updateDatetime == null) {
                        if (other$updateDatetime == null) {
                            break label198;
                        }
                    } else if (this$updateDatetime.equals(other$updateDatetime)) {
                        break label198;
                    }

                    return false;
                }

                Object this$createBy = this.getCreateBy();
                Object other$createBy = other.getCreateBy();
                if (this$createBy == null) {
                    if (other$createBy != null) {
                        return false;
                    }
                } else if (!this$createBy.equals(other$createBy)) {
                    return false;
                }

                label184: {
                    Object this$updateBy = this.getUpdateBy();
                    Object other$updateBy = other.getUpdateBy();
                    if (this$updateBy == null) {
                        if (other$updateBy == null) {
                            break label184;
                        }
                    } else if (this$updateBy.equals(other$updateBy)) {
                        break label184;
                    }

                    return false;
                }

                label177: {
                    Object this$delFlag = this.getDelFlag();
                    Object other$delFlag = other.getDelFlag();
                    if (this$delFlag == null) {
                        if (other$delFlag == null) {
                            break label177;
                        }
                    } else if (this$delFlag.equals(other$delFlag)) {
                        break label177;
                    }

                    return false;
                }

                Object this$electrification = this.getElectrification();
                Object other$electrification = other.getElectrification();
                if (this$electrification == null) {
                    if (other$electrification != null) {
                        return false;
                    }
                } else if (!this$electrification.equals(other$electrification)) {
                    return false;
                }

                Object this$singleDoubleLine = this.getSingleDoubleLine();
                Object other$singleDoubleLine = other.getSingleDoubleLine();
                if (this$singleDoubleLine == null) {
                    if (other$singleDoubleLine != null) {
                        return false;
                    }
                } else if (!this$singleDoubleLine.equals(other$singleDoubleLine)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof JcSecline;
    }

    public int hashCode() {
        Object $seclineId = this.getSeclineId();
        int result = 1 * 59 + ($seclineId == null ? 43 : $seclineId.hashCode());
        Object $assetDept = this.getAssetDept();
        result = result * 59 + ($assetDept == null ? 43 : $assetDept.hashCode());
        Object $beginRoad = this.getBeginRoad();
        result = result * 59 + ($beginRoad == null ? 43 : $beginRoad.hashCode());
        Object $endAddress = this.getEndAddress();
        result = result * 59 + ($endAddress == null ? 43 : $endAddress.hashCode());
        Object $endRoad = this.getEndRoad();
        result = result * 59 + ($endRoad == null ? 43 : $endRoad.hashCode());
        Object $lineId = this.getLineId();
        result = result * 59 + ($lineId == null ? 43 : $lineId.hashCode());
        Object $lineLevel = this.getLineLevel();
        result = result * 59 + ($lineLevel == null ? 43 : $lineLevel.hashCode());
        Object $memo = this.getMemo();
        result = result * 59 + ($memo == null ? 43 : $memo.hashCode());
        Object $openDate = this.getOpenDate();
        result = result * 59 + ($openDate == null ? 43 : $openDate.hashCode());
        Object $operateKilomeaters = this.getOperateKilomeaters();
        result = result * 59 + ($operateKilomeaters == null ? 43 : $operateKilomeaters.hashCode());
        Object $seclineName = this.getSeclineName();
        result = result * 59 + ($seclineName == null ? 43 : $seclineName.hashCode());
        Object $seclineNo = this.getSeclineNo();
        result = result * 59 + ($seclineNo == null ? 43 : $seclineNo.hashCode());
        Object $seclineType = this.getSeclineType();
        result = result * 59 + ($seclineType == null ? 43 : $seclineType.hashCode());
        Object $speedLevel = this.getSpeedLevel();
        result = result * 59 + ($speedLevel == null ? 43 : $speedLevel.hashCode());
        Object $startAddress = this.getStartAddress();
        result = result * 59 + ($startAddress == null ? 43 : $startAddress.hashCode());
        Object $supplyWay = this.getSupplyWay();
        result = result * 59 + ($supplyWay == null ? 43 : $supplyWay.hashCode());
        Object $suspensionType = this.getSuspensionType();
        result = result * 59 + ($suspensionType == null ? 43 : $suspensionType.hashCode());
        Object $orderNum = this.getOrderNum();
        result = result * 59 + ($orderNum == null ? 43 : $orderNum.hashCode());
        Object $gdxtLineId = this.getGdxtLineId();
        result = result * 59 + ($gdxtLineId == null ? 43 : $gdxtLineId.hashCode());
        Object $source = this.getSource();
        result = result * 59 + ($source == null ? 43 : $source.hashCode());
        Object $railType = this.getRailType();
        result = result * 59 + ($railType == null ? 43 : $railType.hashCode());
        Object $convertLineKms = this.getConvertLineKms();
        result = result * 59 + ($convertLineKms == null ? 43 : $convertLineKms.hashCode());
        Object $createDatetime = this.getCreateDatetime();
        result = result * 59 + ($createDatetime == null ? 43 : $createDatetime.hashCode());
        Object $updateDatetime = this.getUpdateDatetime();
        result = result * 59 + ($updateDatetime == null ? 43 : $updateDatetime.hashCode());
        Object $createBy = this.getCreateBy();
        result = result * 59 + ($createBy == null ? 43 : $createBy.hashCode());
        Object $updateBy = this.getUpdateBy();
        result = result * 59 + ($updateBy == null ? 43 : $updateBy.hashCode());
        Object $delFlag = this.getDelFlag();
        result = result * 59 + ($delFlag == null ? 43 : $delFlag.hashCode());
        Object $electrification = this.getElectrification();
        result = result * 59 + ($electrification == null ? 43 : $electrification.hashCode());
        Object $singleDoubleLine = this.getSingleDoubleLine();
        result = result * 59 + ($singleDoubleLine == null ? 43 : $singleDoubleLine.hashCode());
        return result;
    }

    public String toString() {
        return "JcSecline(seclineId=" + this.getSeclineId() + ", assetDept=" + this.getAssetDept() + ", beginRoad=" + this.getBeginRoad() + ", endAddress=" + this.getEndAddress() + ", endRoad=" + this.getEndRoad() + ", lineId=" + this.getLineId() + ", lineLevel=" + this.getLineLevel() + ", memo=" + this.getMemo() + ", openDate=" + this.getOpenDate() + ", operateKilomeaters=" + this.getOperateKilomeaters() + ", seclineName=" + this.getSeclineName() + ", seclineNo=" + this.getSeclineNo() + ", seclineType=" + this.getSeclineType() + ", speedLevel=" + this.getSpeedLevel() + ", startAddress=" + this.getStartAddress() + ", supplyWay=" + this.getSupplyWay() + ", suspensionType=" + this.getSuspensionType() + ", orderNum=" + this.getOrderNum() + ", gdxtLineId=" + this.getGdxtLineId() + ", source=" + this.getSource() + ", railType=" + this.getRailType() + ", convertLineKms=" + this.getConvertLineKms() + ", createDatetime=" + this.getCreateDatetime() + ", updateDatetime=" + this.getUpdateDatetime() + ", createBy=" + this.getCreateBy() + ", updateBy=" + this.getUpdateBy() + ", delFlag=" + this.getDelFlag() + ", electrification=" + this.getElectrification() + ", singleDoubleLine=" + this.getSingleDoubleLine() + ")";
    }
}

